﻿using System;
using System.Collections.Generic;

namespace AcademicPlanner.Data.Entities
{
	/// <summary>
	/// PersonEntity represents the data aspect of a domain layer's <c>Person</c>.
	/// </summary>
	/// <version>1.0</version>
	/// <since>1.0</since>
    public class PersonEntity : Entity
    {
		/// <summary>
		/// Gets or sets this PersonEntity's name.
		/// </summary>
		/// <version>1.0</version>
		/// <since>1.0</since>
		public virtual string Name { get; set; }

		/// <summary>
		/// Gets or sets this PersonEntity's email address.
		/// </summary>
		/// <version>1.0</version>
		/// <since>1.0</since>
		public virtual string Email { get; set; }

		/// <summary>
		/// Gets or sets this PersonEntity's list of <c>AccountEntity</c>s.
		/// </summary>
		/// <version>1.0</version>
		/// <since>1.0</since>
		public virtual IList<AccountEntity> AccountEntities { get; set; }


		/// <summary>
		/// Sets the default values of this <c>PersonEntity</c>'s properties.
		/// <c>Name</c> is set to <c>""</c>, <c>Email</c> is set to <c>""</c> and
		/// <c>AccountEntities</c> is set to a new <c>List</c>.
		/// </summary>
		/// <seealso cref="M:AcademicPlanner.Data.Entity.SetDefaults"/>
		/// <version>1.0</version>
		/// <since>1.0</since>
		public override void SetDefaults()
		{
			base.SetDefaults();
			Name = "";
			Email = "";
			AccountEntities = new List<AccountEntity>();
		}
    }
}
